<?php
 include "counter2.php";

pagestart();
print "\n<html>\n";
pagehead(_("Plan for dropping dead entries"));
print "\n<BODY bgcolor=\"white\">\n";
pagetop(_("Plan for dropping dead Linux Counter entries"));

print "\n" . _("This page details the steps needed before we drop the dead entries off the Linux Counter's usercounts.");

print "\n<h2>" . _("Definition of a dead entry") . "</h2>\n" .
_("A dead entry is one that satisfies one of the criteria below:") .
"\n<ul>" .
"\n<li>" . _("Ancient:") .
"\n	<ul>" .
"\n	<li>" . _("Has not been accessed for 2 years (730 days)") .
"\n	<li>" . _("Reminder email sent at least 3 months ago (90 days)") .
"\n	</ul>" .
"\n<li>" . _("Uncontactable:") .
"\n	<ul>" .
"\n	<li>" . _("All his emails are in state BAD") .
"\n	<li>" . _("Has not been accessed for 1 year (365 days)") .
"\n	</ul>" .
"\n</ul>";

print "\n<h2>" . _("Database content work") . "</h2>\n" .
_("There are some dead people that may be salvageable.") .
"\n<ul>" .
"\n<li>" . _("Other known accounts. 1424 users have a BAD main email, and some other email that is not BAD. (953 public, 471 old).") . "\n<br>\n" .
_("Suggested action: Set their main email to the non-bad mail and send a reminder. (It is likely that most of them will bounce - many were changes away from uni emails to corporate or service-provider accounts)") .
"\n<li>" . _("Fixable syntax errors. Some people make mistakes in typing emails that can be corrected (commas in compuserve userids, for instance, or various instances of NOSPAM).") . "\n<br>\n" .
_("Suggested action: If using the email as main, fix the error and send a reminder.") .
"\n</ul>\n" .
_("There is also a steady leakage back from BAD to OK state for emails; this means that the cronjobs might want to run a last check on the bad-email people before freezing them.") . "\n<br>\n" .
_("(the cron jobs check 20 BAD records every night - on average about one flips from BAD to OK. Of course, emails that are BAD because of bounces cannot be checked this way)") .
"\n<br>\n" .
_("fwiw, checking BAD entries to SMTP level takes about 5 seconds per entry. Lots of things go to timeout.");

print "\n<h2>" . _("Administrative interface work") . "</h2>\n" .
_("The admin view of a person needs to have a button for \"send reminder\".") .
"\n<p>\n" .
_("The admin view needs a function to switch which email is his \"main\" email.") .
"\n<p>\n" .
_("At the moment, most errors do not have \"level\" associated with them. Need to re-run the checking script to fill in the \"level\" field.") .
"\n<p>\n" .
_("Need to have lists generated of all persons that are \"fixable\".") .
"\n<p>\n" .
_("Need to have a \"find frozen account\" function, and an \"unfreeze\" function.") .
"\n<p>\n" .
_("There needs to be a \"freeze\" script that finds all the people eligible for freezing and freezes them. The first run will be massive; the job will later have to be run from cron.") .
"\n<p>\n" .
_("There needs to be a \"rollback\" function to deal with abuses, which rolls back the user and/or person and/or machine records to a previous known state.");

print "\n<h2>" . _("User interface work") . "</h2>\n" .
_("Need to have a function for people to go in with their old, bad email, specify a new one, and be able to take over the old entry. Query: How much do we trust them?") .
"\n<p>\n" .
_("Need to be able to let people usefully specify alternate emails in case one email goes bad. Emails of type \"backup\".") .
"\n<p>\n" .
_("There should be a \"rescue this account\" function - perhaps off the login page - where people can update a record with a new address without logging in. A CC mail to the administrator should be enough to ensure that abuses are detected (?).");

print "\n<h2>" . _("PR work") . "</h2>\n" .
_("I think a gradual draw-down of the user count is a Bad Thing.") .
"\n<p>\n" .
_("I think it would be better to withdraw ALL the candidate \"bad ones\" in one go, advertising the event widely (which would probably get us some of them back + some new ones - good for us!)") .
"\n<p>\n" .
_("Someone needs to write the web pages explaining what is happening and how to get back your \"lost\" entry - and to write the advertising hype!") .
"\n<br>\n" .
_("Possible outlets:") .
"\n<ul>" .
"\n<li>Slashdot" .
"\n<li>Linux Today" .
"\n<li>Linux World" .
"\n<li>" . _("Every webzine that has featured the counter....") .
"\n</ul>\n" .
_("On the day that we go public, we'd better have some adequate staffing on hand - including the ability to reboot the machine if required, and to fix any obvious problems; we will be inundated with email.");

pagebottom("yes");
print "\n</body>\n</html>";
?>
